Advanced innovation in computer technology has altered how people and businesses communicate. For example, instances that previously required a handwritten letter (and subsequently several days for transportation of the letter) now require an e-mail that can be delivered to an intended recipient almost instantaneously. Pictures taken with digital cameras can be uploaded onto the Internet, thus enabling numerous friends, family, or otherwise to view such pictures at their convenience and without cost (e.g., developing cost, delivery cost, . . . ). Furthermore, songs and movies that at one time required tapes, records, disks, etc. as well as a suitable player for playback can now be generated in digital format and exist within a hard drive on a computer. Thereafter these movies and tapes can be played on the computer, as well as stored on removable media and played on external devices. When generating and transporting computer data that represent these and other similar computer objects, two considerations should be accounted for—error correction and maintaining secrecy of the data. Codes are a set of rules for converting a piece of information into another object or action.
Particular communications can be extremely valuable to those delivering messages as well as those receiving the messages. For instance, in a military context it is desirable to ensure that all tactical communications between individuals at disparate locations remains unobtainable by an adversary. Cryptography codes provided a suitable solution for these situations. Cryptography is generally understood to be a study of principles and techniques by which information is converted into an encrypted version that is difficult for an unauthorized person to read (e.g., an unauthorized person should not be able to convert the encrypted version back to the original version). However, an intended recipient must be able to obtain and read the information without a great amount of difficulty.
Cryptography keys were created to cause adversaries difficulty in obtaining secretive information. A cryptographic key is a relatively small amount of information utilized by a cryptographic code to enable encoding and decoding of secretive information. Disparate keys utilized by the cryptographic code will produce different results during encoding and decoding of information. Thus, if an adversary obtains the appropriate key(s), he can thereafter obtain the information that the key(s) were created to protect. This is because the study of cryptography assumes that an adversary thoroughly knows the cryptographic code employed to encrypt the message. Therefore the security of a cryptographic key (and the information protected by the key) requires that the key be kept secret. Symmetric key algorithms utilize a single key for both encryption and decryption of messages. Thus, if an adversary were to obtain the key, he could read secretive information as well as create and deliver false information to an unknowing recipient. Asymmetric key algorithms were then created to alleviate some of these problems by requiring one key for encryption and a second key for decryption. In an instance that an adversary discovers one of the key(s), however, the adversary can still either send false information or receive secretive information. Furthermore, several asymmetric key algorithms have been thoroughly broken, thus enabling adversaries to obtain access to secretive information. For instance, an adversary can determine a location of the key within the information, and thereafter utilize brute force techniques to obtain the key. For instance, the adversary can deliver noise to the location containing the key, causing particular bits to flip. If given sufficient time, the adversary will eventually alter correct bits at the key location to allow for encryption of the information.
Digital media (songs, images, videos, . . . ) and other desirably protected digital information can include watermarks that purportedly prevent an unauthorized user from copying and/or playing the media. For example, a digital song can include a watermark, wherein a media player will not play the song upon reading the watermark. An attacker, however, can determine a location of the watermark and deliver a noise burst to such watermark. When the media player encounters the damaged watermark, it will not be able to determine that the user is unauthorized, and will allow play and/or recording of the song.
Designing codes against adversarial attacks, however, is difficult, and these codes typically do not perform as well as codes designed against random noise attacks. Furthermore, error correction techniques (e.g., Reed-Muller codes, Reed-Solomon codes, Goppa codes . . . ) have much greater performance when random noise attacks occur upon data when compared to instances that adversarial attacks occur upon data. This is because random noise attacks are not concentrated on a particular location within a code, whereas adversarial attacks are designed to destroy the mathematical property of the code. Thus, accordingly, codes designed against random attacks (codes designed in a noise model) are associated with performance that is roughly twice better than codes designed against adversarial attacks (codes designed in an adversarial model), as error detection and correction codes are well equipped to detect and recover data altered due to random noise.
In view of at least the above, there exists a strong need in the art for a system and/or methodology that provides for improved cryptography properties and error-correction properties in light of an adversarial attack on such code.